const { defineConfig } = require('@vue/cli-service')
const webpack = require('webpack');
const path = require('path');

const versionTime = new Date().getTime();

module.exports = defineConfig({
  transpileDependencies: true,
  filenameHashing: true,            //打包加版本号
  //静态网站↓=====================================================
  publicPath: '/componentsDIY/',    //gitee远程库名
  //比如：pages地址：https://xxxxxx.gitee.io/effects，publicPath就是/effects/
  outputDir: 'dist/',
  assetsDir: 'static/',
  //静态网站↑=====================================================

  //全局样式↓=====================================================
  // npm install sass sass-loader -D
  // Node Sass 与脚手架版本不兼容，不要用
  css: {
    loaderOptions: {
      scss: {
        additionalData: `@import "@/assets/style/globalVariable.scss";`,
        //旧版本用prependData，新版比如cli5本用additionalData
        //注意：sass-loader将文件引用写入每个组件，适合全局引入变量，但不适合在单页面应用中添加样式，如果是全局样式（非变量），建议在main.js里引入
      },
    },
  },
  //全局样式↑=====================================================

  //全局函数↓=====================================================
  configureWebpack: {
    plugins: [
      new webpack.ProvidePlugin({
        globalFnWP: [path.resolve(__dirname, './src/globalFn/globalFn.js')],
        gData: [path.resolve(__dirname, './src/globalData/globalData.js')],
      }),
    ],
  },
  //全局函数↑=====================================================

  //版本↓========================================================
  chainWebpack(config) {
    config.plugin('define').tap(args => {
      args[0]['process.env'].versionTime = JSON.stringify(versionTime);
      return args;
      //页面调用process.env.versionTime
    });
  }
  //版本↑========================================================
})


